[INFO] fetching crate async-utp 0.8.0-alpha1...
[INFO] fixing async-utp-0.8.0-alpha1 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate async-utp 0.8.0-alpha1 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate async-utp 0.8.0-alpha1
[INFO] finished tweaking crates.io crate async-utp 0.8.0-alpha1
[INFO] tweaked toml for crates.io crate async-utp 0.8.0-alpha1 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate async-utp 0.8.0-alpha1 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 102 packages to latest compatible versions
[INFO] [stderr]       Adding num-traits v0.1.43 (available: v0.2.19)
[INFO] [stderr]       Adding quickcheck v0.4.1 (available: v1.1.0)
[INFO] [stderr]       Adding rand v0.8.6 (available: v0.10.1)
[INFO] [stderr]       Adding tracing-subscriber v0.2.25 (available: v0.3.23)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1b72b7e4d3ba1b5cf9510f49407c47c5f82e1c05ecf6eace7d82694152da4a0f
[INFO] running `Command { std: "docker" "start" "1b72b7e4d3ba1b5cf9510f49407c47c5f82e1c05ecf6eace7d82694152da4a0f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1b72b7e4d3ba1b5cf9510f49407c47c5f82e1c05ecf6eace7d82694152da4a0f" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1b72b7e4d3ba1b5cf9510f49407c47c5f82e1c05ecf6eace7d82694152da4a0f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1b72b7e4d3ba1b5cf9510f49407c47c5f82e1c05ecf6eace7d82694152da4a0f" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   log v0.4.33 removed features: std
[INFO] [stderr]   syn v2.0.118 (as host dependency) removed features: visit
[INFO] [stderr]   tokio v1.52.3 removed features: windows-sys
[INFO] [stderr]   tracing-core v0.1.36 removed features: default
[INFO] [stderr] 
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking regex-syntax v0.3.9
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking tracing-log v0.1.4
[INFO] [stderr]     Checking tracing-serde v0.1.3
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stderr]     Checking matchers v0.0.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking pin-project v1.1.13
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking env_logger v0.3.5
[INFO] [stderr]     Checking regex v1.12.4
[INFO] [stderr]     Checking quickcheck v0.4.1
[INFO] [stderr]     Checking tracing-subscriber v0.2.25
[INFO] [stderr]     Checking async-utp v0.8.0-alpha1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]        Fixed src/socket.rs (6 fixes)
[INFO] [stderr]        Fixed src/packet.rs (3 fixes)
[INFO] [stderr]        Fixed src/packet.rs (13 fixes)
[INFO] [stderr]        Fixed src/socket.rs (6 fixes)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.41s
[INFO] [stderr] crater-edition-check: async-utp v0.8.0-alpha1 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking pin-project v1.1.13
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking tracing-subscriber v0.2.25
[INFO] [stderr]     Checking async-utp v0.8.0-alpha1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 | #![cfg_attr(feature = "clippy", feature(plugin))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![cfg_attr(feature = "clippy", plugin(clippy))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/lib.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 | #![cfg_attr(feature = "nightly", feature(test))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `nightly` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     feature = "clippy",
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]    --> src/packet.rs:823:11
[INFO] [stdout]     |
[INFO] [stdout] 823 | #[cfg(all(feature = "nightly", test))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `unstable`
[INFO] [stdout]     = help: consider adding `nightly` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1420 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1488 |                 match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                       -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1498 |                 if poll_unpin!(socket.socket.send_to(reply.as_ref(), src), cx)
[INFO] [stdout]      |                    ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1515 |             if poll_unpin!(socket.send_packet(&mut packet), cx).is_pending() {
[INFO] [stdout]      |                ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1522 |                 poll_unpin!(socket.socket.send_to(packet.as_ref(), dst), cx)
[INFO] [stdout]      |                 ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1596 |                 while poll_unpin!(self.receiver.recv(), cx).is_ready() {}
[INFO] [stdout]      |                       ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1605 |             match poll_unpin!(socket.send_packet(&mut packet), cx) {
[INFO] [stdout]      |                   ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1646 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1696 |                             poll_unpin!(socket.close(), cx)
[INFO] [stdout]      |                             ------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1706 |                 let msg = poll_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                           ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1782 |         match poll_unpin!(socket.send_packet(&mut reply), cx) {
[INFO] [stdout]      |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1809 |             match poll_unpin!(self.handle_timeout(next_timeout), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1855 |             match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 | #![cfg_attr(feature = "clippy", feature(plugin))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![cfg_attr(feature = "clippy", plugin(clippy))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/lib.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 | #![cfg_attr(feature = "nightly", feature(test))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `nightly` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     feature = "clippy",
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]    --> src/packet.rs:823:11
[INFO] [stdout]     |
[INFO] [stdout] 823 | #[cfg(all(feature = "nightly", test))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `unstable`
[INFO] [stdout]     = help: consider adding `nightly` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1420 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1488 |                 match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                       -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1498 |                 if poll_unpin!(socket.socket.send_to(reply.as_ref(), src), cx)
[INFO] [stdout]      |                    ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1515 |             if poll_unpin!(socket.send_packet(&mut packet), cx).is_pending() {
[INFO] [stdout]      |                ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1522 |                 poll_unpin!(socket.socket.send_to(packet.as_ref(), dst), cx)
[INFO] [stdout]      |                 ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1596 |                 while poll_unpin!(self.receiver.recv(), cx).is_ready() {}
[INFO] [stdout]      |                       ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1605 |             match poll_unpin!(socket.send_packet(&mut packet), cx) {
[INFO] [stdout]      |                   ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1646 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1696 |                             poll_unpin!(socket.close(), cx)
[INFO] [stdout]      |                             ------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1706 |                 let msg = poll_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                           ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1782 |         match poll_unpin!(socket.send_packet(&mut reply), cx) {
[INFO] [stdout]      |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1809 |             match poll_unpin!(self.handle_timeout(next_timeout), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1855 |             match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 313 |     make_setter!(set_seq_nr, seq_nr, u16);
[INFO] [stdout]     |     ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 314 |     make_setter!(set_ack_nr, ack_nr, u16);
[INFO] [stdout]     |     ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 315 |     make_setter!(set_connection_id, connection_id, u16);
[INFO] [stdout]     |     --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 316 |     make_setter!(set_wnd_size, wnd_size, u32);
[INFO] [stdout]     |     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]    --> src/packet.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl<'a> Extension<'a> {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] 110 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `bind`, `peer_addr`, `connect`, `recv_from`, `should_read`, and `send_to` are never used
[INFO] [stdout]    --> src/socket.rs:196:18
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl UtpSocket {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub async fn bind<A: ToSocketAddrs>(addr: A) -> Result<UtpSocket> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn peer_addr(&self) -> Result<SocketAddr> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub async fn connect(addr: SocketAddr) -> Result<UtpSocket> {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub async fn recv_from(
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 592 |     pub(crate) fn should_read(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 607 |     pub async fn send_to(&mut self, buf: &[u8]) -> Result<usize> {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/bit_iterator.rs:15:41
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn from_bytes(obj: &'a [u8]) -> BitIterator {
[INFO] [stdout]    |                             --          ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn from_bytes(obj: &'a [u8]) -> BitIterator<'a> {
[INFO] [stdout]    |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/packet.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter(&self) -> BitIterator {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter(&self) -> BitIterator<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/packet.rs:270:23
[INFO] [stdout]     |
[INFO] [stdout] 270 |     pub fn extensions(&self) -> ExtensionIterator {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 270 |     pub fn extensions(&self) -> ExtensionIterator<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 313 |     make_setter!(set_seq_nr, seq_nr, u16);
[INFO] [stdout]     |     ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 314 |     make_setter!(set_ack_nr, ack_nr, u16);
[INFO] [stdout]     |     ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 315 |     make_setter!(set_connection_id, connection_id, u16);
[INFO] [stdout]     |     --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 316 |     make_setter!(set_wnd_size, wnd_size, u32);
[INFO] [stdout]     |     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `should_read` is never used
[INFO] [stdout]    --> src/socket.rs:592:19
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl UtpSocket {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 592 |     pub(crate) fn should_read(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/bit_iterator.rs:15:41
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn from_bytes(obj: &'a [u8]) -> BitIterator {
[INFO] [stdout]    |                             --          ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn from_bytes(obj: &'a [u8]) -> BitIterator<'a> {
[INFO] [stdout]    |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/packet.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter(&self) -> BitIterator {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn iter(&self) -> BitIterator<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/packet.rs:270:23
[INFO] [stdout]     |
[INFO] [stdout] 270 |     pub fn extensions(&self) -> ExtensionIterator {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 270 |     pub fn extensions(&self) -> ExtensionIterator<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.18s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   log v0.4.33 removed features: std
[INFO] [stderr]   syn v2.0.118 (as host dependency) removed features: visit
[INFO] [stderr]   tokio v1.52.3 removed features: windows-sys
[INFO] [stderr]   tracing-core v0.1.36 removed features: default
[INFO] [stderr] 
[INFO] [stderr]     Checking async-utp v0.8.0-alpha1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/socket.rs (8 fixes)
[INFO] [stderr]        Fixed src/util.rs (1 fix)
[INFO] [stderr]        Fixed src/packet.rs (2 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1757:45
[INFO] [stdout]      |
[INFO] [stdout] 1756 |             let mut socket = self.socket.lock().await;
[INFO] [stdout]      |                 ----------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `socket` calls a custom destructor
[INFO] [stdout]      |                 `socket` will be dropped later as of Edition 2024
[INFO] [stdout] 1757 |             socket.handle_receive_timeout().await
[INFO] [stdout]      |                                             ^^^^^
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1758 |         };
[INFO] [stdout]      |          - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `socket` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1420 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1488 |                 match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                       -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1498 |                 if poll_unpin!(socket.socket.send_to(reply.as_ref(), src), cx)
[INFO] [stdout]      |                    ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1515 |             if poll_unpin!(socket.send_packet(&mut packet), cx).is_pending() {
[INFO] [stdout]      |                ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1522 |                 poll_unpin!(socket.socket.send_to(packet.as_ref(), dst), cx)
[INFO] [stdout]      |                 ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1551:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1551 |             let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1551 |             let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                              ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1580:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1580 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1580 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                          ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1605 |             match poll_unpin!(socket.send_packet(&mut packet), cx) {
[INFO] [stdout]      |                   ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1596 |                 while poll_unpin!(self.receiver.recv(), cx).is_ready() {}
[INFO] [stdout]      |                       ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1658:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1658 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1646 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1658 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                          ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1680:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1680 |             let socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1692:51
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1692 |                     let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                                   |
[INFO] [stdout]      |                                                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1680 |             let socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                          ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1692 |                     let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                      ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1696 |                             poll_unpin!(socket.close(), cx)
[INFO] [stdout]      |                             ------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1701 |                             ready_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                             -------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1706 |                 let msg = poll_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                           ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1782 |         match poll_unpin!(socket.send_packet(&mut reply), cx) {
[INFO] [stdout]      |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1809 |             match poll_unpin!(self.handle_timeout(next_timeout), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1839:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1839 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1839 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                          ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1855 |             match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1880 |                             Ok(None) => ready_try_unpin!(socket.send(), cx),
[INFO] [stdout]      |                                         ----------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` which comes from the expansion of the macro `ready_try_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:2157:16
[INFO] [stdout]      |
[INFO] [stdout] 2140 |         let mut stream = stream_connect(client_addr, server_addr)
[INFO] [stdout]      |             ----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `stream` calls a custom destructor
[INFO] [stdout]      |             `stream` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 2157 |         handle.await.expect("task failure")
[INFO] [stdout]      |                ^^^^^
[INFO] [stdout]      |                |
[INFO] [stdout]      |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 2158 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/join.rs:357:1
[INFO] [stdout]      |
[INFO] [stdout]  357 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `stream` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mpsc/chan.rs:487:1
[INFO] [stdout]      |
[INFO] [stdout]  487 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `stream` invokes this custom destructor
[INFO] [stdout]     --> src/socket.rs:1898:1
[INFO] [stdout]      |
[INFO] [stdout] 1898 | impl Drop for UtpSocket {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:3519:37
[INFO] [stdout]      |
[INFO] [stdout] 3486 |         let mut server = iotry!(UtpSocket::bind(server_addr));
[INFO] [stdout]      |             ----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `server` calls a custom destructor
[INFO] [stdout]      |             `server` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3491 |         let mut client = iotry!(UtpSocket::connect(server_addr));
[INFO] [stdout]      |             ----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `client` calls a custom destructor
[INFO] [stdout]      |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3519 |         match server.recv(&mut buf).await {
[INFO] [stdout]      |                                     ^^^^^
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3523 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `server` invokes this custom destructor
[INFO] [stdout]     --> src/socket.rs:1898:1
[INFO] [stdout]      |
[INFO] [stdout] 1898 | impl Drop for UtpSocket {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]     --> src/socket.rs:1898:1
[INFO] [stdout]      |
[INFO] [stdout] 1898 | impl Drop for UtpSocket {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:3556:30
[INFO] [stdout]      |
[INFO] [stdout] 3530 |         let mut server = iotry!(UtpSocket::bind(server_addr));
[INFO] [stdout]      |             ----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `server` calls a custom destructor
[INFO] [stdout]      |             `server` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3535 |         let mut client = iotry!(UtpSocket::connect(server_addr));
[INFO] [stdout]      |             ----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `client` calls a custom destructor
[INFO] [stdout]      |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3556 |         match server.close().await {
[INFO] [stdout]      |                              ^^^^^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3560 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `server` invokes this custom destructor
[INFO] [stdout]     --> src/socket.rs:1898:1
[INFO] [stdout]      |
[INFO] [stdout] 1898 | impl Drop for UtpSocket {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]     --> src/socket.rs:1898:1
[INFO] [stdout]      |
[INFO] [stdout] 1898 | impl Drop for UtpSocket {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:3595:42
[INFO] [stdout]      |
[INFO] [stdout] 3567 |         let mut server = iotry!(UtpSocket::bind(server_addr));
[INFO] [stdout]      |             ----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `server` calls a custom destructor
[INFO] [stdout]      |             `server` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3572 |         let mut client = iotry!(UtpSocket::connect(server_addr));
[INFO] [stdout]      |             ----------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `client` calls a custom destructor
[INFO] [stdout]      |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3595 |         match server.recv_from(&mut buf).await {
[INFO] [stdout]      |                                          ^^^^^
[INFO] [stdout]      |                                          |
[INFO] [stdout]      |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 3599 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `server` invokes this custom destructor
[INFO] [stdout]     --> src/socket.rs:1898:1
[INFO] [stdout]      |
[INFO] [stdout] 1898 | impl Drop for UtpSocket {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]     --> src/socket.rs:1898:1
[INFO] [stdout]      |
[INFO] [stdout] 1898 | impl Drop for UtpSocket {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1757:45
[INFO] [stdout]      |
[INFO] [stdout] 1756 |             let mut socket = self.socket.lock().await;
[INFO] [stdout]      |                 ----------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `socket` calls a custom destructor
[INFO] [stdout]      |                 `socket` will be dropped later as of Edition 2024
[INFO] [stdout] 1757 |             socket.handle_receive_timeout().await
[INFO] [stdout]      |                                             ^^^^^
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 1758 |         };
[INFO] [stdout]      |          - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `socket` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1420 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1488 |                 match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                       -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1498 |                 if poll_unpin!(socket.socket.send_to(reply.as_ref(), src), cx)
[INFO] [stdout]      |                    ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1515 |             if poll_unpin!(socket.send_packet(&mut packet), cx).is_pending() {
[INFO] [stdout]      |                ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1522 |                 poll_unpin!(socket.socket.send_to(packet.as_ref(), dst), cx)
[INFO] [stdout]      |                 ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1551:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1551 |             let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1551 |             let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                              ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.02s
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1580:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1580 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1580 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                          ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1605 |             match poll_unpin!(socket.send_packet(&mut packet), cx) {
[INFO] [stdout]      |                   ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1596 |                 while poll_unpin!(self.receiver.recv(), cx).is_ready() {}
[INFO] [stdout]      |                       ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1658:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1658 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1646 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1658 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                          ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1680:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1680 |             let socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1692:51
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1692 |                     let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                                   |
[INFO] [stdout]      |                                                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1680 |             let socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                          ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1692 |                     let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                      ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1696 |                             poll_unpin!(socket.close(), cx)
[INFO] [stdout]      |                             ------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1701 |                             ready_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                             -------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1706 |                 let msg = poll_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                           ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1782 |         match poll_unpin!(socket.send_packet(&mut reply), cx) {
[INFO] [stdout]      |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1809 |             match poll_unpin!(self.handle_timeout(next_timeout), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1839:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |               ---------------------------------------------------
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1839 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1839 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                          ------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1237:45
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                             ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1855 |             match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/socket.rs:1215:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                           ^^^^^^^^^^    ---- borrow later used by call
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this temporary value will be dropped at the end of the block
[INFO] [stdout] ...
[INFO] [stdout] 1880 |                             Ok(None) => ready_try_unpin!(socket.send(), cx),
[INFO] [stdout]      |                                         ----------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `ready_unpin` which comes from the expansion of the macro `ready_try_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: async-utp v0.8.0-alpha1 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking async-utp v0.8.0-alpha1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 | #![cfg_attr(feature = "clippy", feature(plugin))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![cfg_attr(feature = "clippy", plugin(clippy))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/lib.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 | #![cfg_attr(feature = "nightly", feature(test))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `nightly` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     feature = "clippy",
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]    --> src/packet.rs:823:11
[INFO] [stdout]     |
[INFO] [stdout] 823 | #[cfg(all(feature = "nightly", test))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `unstable`
[INFO] [stdout]     = help: consider adding `nightly` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1420 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1488 |                 match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                       -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1498 |                 if poll_unpin!(socket.socket.send_to(reply.as_ref(), src), cx)
[INFO] [stdout]      |                    ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1515 |             if poll_unpin!(socket.send_packet(&mut packet), cx).is_pending() {
[INFO] [stdout]      |                ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1522 |                 poll_unpin!(socket.socket.send_to(packet.as_ref(), dst), cx)
[INFO] [stdout]      |                 ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1596 |                 while poll_unpin!(self.receiver.recv(), cx).is_ready() {}
[INFO] [stdout]      |                       ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1605 |             match poll_unpin!(socket.send_packet(&mut packet), cx) {
[INFO] [stdout]      |                   ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1646 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1696 |                             poll_unpin!(socket.close(), cx)
[INFO] [stdout]      |                             ------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1706 |                 let msg = poll_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                           ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1782 |         match poll_unpin!(socket.send_packet(&mut reply), cx) {
[INFO] [stdout]      |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1809 |             match poll_unpin!(self.handle_timeout(next_timeout), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1855 |             match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 | #![cfg_attr(feature = "clippy", feature(plugin))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![cfg_attr(feature = "clippy", plugin(clippy))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]   --> src/lib.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 | #![cfg_attr(feature = "nightly", feature(test))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `nightly` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]   --> src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     feature = "clippy",
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `unstable`
[INFO] [stdout]    = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `nightly`
[INFO] [stdout]    --> src/packet.rs:823:11
[INFO] [stdout]     |
[INFO] [stdout] 823 | #[cfg(all(feature = "nightly", test))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `unstable`
[INFO] [stdout]     = help: consider adding `nightly` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1420 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1488 |                 match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                       -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1498 |                 if poll_unpin!(socket.socket.send_to(reply.as_ref(), src), cx)
[INFO] [stdout]      |                    ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1515 |             if poll_unpin!(socket.send_packet(&mut packet), cx).is_pending() {
[INFO] [stdout]      |                ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1522 |                 poll_unpin!(socket.socket.send_to(packet.as_ref(), dst), cx)
[INFO] [stdout]      |                 ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1596 |                 while poll_unpin!(self.receiver.recv(), cx).is_ready() {}
[INFO] [stdout]      |                       ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1605 |             match poll_unpin!(socket.send_packet(&mut packet), cx) {
[INFO] [stdout]      |                   ------------------------------------------------ in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1646 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |               ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1696 |                             poll_unpin!(socket.close(), cx)
[INFO] [stdout]      |                             ------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1706 |                 let msg = poll_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                           ------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1782 |         match poll_unpin!(socket.send_packet(&mut reply), cx) {
[INFO] [stdout]      |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1809 |             match poll_unpin!(self.handle_timeout(next_timeout), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]     --> src/socket.rs:1236:9
[INFO] [stdout]      |
[INFO] [stdout] 1236 |         #[allow()]
[INFO] [stdout]      |         ^^^^^^^^^^ help: remove this attribute
[INFO] [stdout] ...
[INFO] [stdout] 1855 |             match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                   -------------------------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: attribute `allow` with an empty list has no effect
[INFO] [stdout]      = note: this warning originates in the macro `poll_unpin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 313 |     make_setter!(set_seq_nr, seq_nr, u16);
[INFO] [stdout]     |     ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 314 |     make_setter!(set_ack_nr, ack_nr, u16);
[INFO] [stdout]     |     ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 315 |     make_setter!(set_connection_id, connection_id, u16);
[INFO] [stdout]     |     --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 316 |     make_setter!(set_wnd_size, wnd_size, u32);
[INFO] [stdout]     |     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1420:27
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1420 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1488:35
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1488 |                 match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1498:32
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1498 |                 if poll_unpin!(socket.socket.send_to(reply.as_ref(), src), cx)
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1515:28
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1515 |             if poll_unpin!(socket.send_packet(&mut packet), cx).is_pending() {
[INFO] [stdout]      |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1522:29
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1522 |                 poll_unpin!(socket.socket.send_to(packet.as_ref(), dst), cx)
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1551:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1551 |             let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1580:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1580 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1596:35
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1596 |                 while poll_unpin!(self.receiver.recv(), cx).is_ready() {}
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1605:31
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1605 |             match poll_unpin!(socket.send_packet(&mut packet), cx) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1646:27
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1646 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1658:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1658 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1680:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1680 |             let socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1692:51
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1692 |                     let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1696:41
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1696 |                             poll_unpin!(socket.close(), cx)
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1701:42
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1701 |                             ready_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                                          ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1706:39
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1706 |                 let msg = poll_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1782:27
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1782 |         match poll_unpin!(socket.send_packet(&mut reply), cx) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1809:31
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1809 |             match poll_unpin!(self.handle_timeout(next_timeout), cx) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1839:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1839 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1855:31
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1855 |             match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1880:58
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1880 |                             Ok(None) => ready_try_unpin!(socket.send(), cx),
[INFO] [stdout]      |                                                          ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0716`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `async-utp` (lib) due to 21 previous errors; 22 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 313 |     make_setter!(set_seq_nr, seq_nr, u16);
[INFO] [stdout]     |     ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 314 |     make_setter!(set_ack_nr, ack_nr, u16);
[INFO] [stdout]     |     ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 315 |     make_setter!(set_connection_id, connection_id, u16);
[INFO] [stdout]     |     --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packet.rs:27:17
[INFO] [stdout]     |
[INFO] [stdout]  27 |             let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) };
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 316 |     make_setter!(set_wnd_size, wnd_size, u32);
[INFO] [stdout]     |     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `make_setter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1420:27
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1420 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1488:35
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1488 |                 match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1498:32
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1498 |                 if poll_unpin!(socket.socket.send_to(reply.as_ref(), src), cx)
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1515:28
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1515 |             if poll_unpin!(socket.send_packet(&mut packet), cx).is_pending() {
[INFO] [stdout]      |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1522:29
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1522 |                 poll_unpin!(socket.socket.send_to(packet.as_ref(), dst), cx)
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1551:43
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1551 |             let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1580:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1580 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1596:35
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1596 |                 while poll_unpin!(self.receiver.recv(), cx).is_ready() {}
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1605:31
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1605 |             match poll_unpin!(socket.send_packet(&mut packet), cx) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1646:27
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1646 |         match poll_unpin!(self.receiver.recv(), cx) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1658:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1658 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1680:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1680 |             let socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1692:51
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1692 |                     let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1696:41
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1696 |                             poll_unpin!(socket.close(), cx)
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1701:42
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1701 |                             ready_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                                          ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1706:39
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1706 |                 let msg = poll_unpin!(self.receiver.recv(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1782:27
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1782 |         match poll_unpin!(socket.send_packet(&mut reply), cx) {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1809:31
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1809 |             match poll_unpin!(self.handle_timeout(next_timeout), cx) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1839:39
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1839 |         let mut socket = ready_unpin!(self.socket.lock(), cx);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1855:31
[INFO] [stdout]      |
[INFO] [stdout] 1237 |         let x = unsafe { Pin::new_unchecked(&mut $data) }.poll($cx);
[INFO] [stdout]      |                                                       -   ---- borrow later used by call
[INFO] [stdout]      |                                                       |
[INFO] [stdout]      |                                                       temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1855 |             match poll_unpin!(socket.socket.recv_from(&mut buf), cx) {
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> src/socket.rs:1880:58
[INFO] [stdout]      |
[INFO] [stdout] 1215 |         match unsafe { Pin::new_unchecked(&mut $data) }.poll($cx) {
[INFO] [stdout]      |                                                     -   ---- borrow later used by call
[INFO] [stdout]      |                                                     |
[INFO] [stdout]      |                                                     temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 1880 |                             Ok(None) => ready_try_unpin!(socket.send(), cx),
[INFO] [stdout]      |                                                          ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0716`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `async-utp` (lib test) due to 21 previous errors; 22 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "1b72b7e4d3ba1b5cf9510f49407c47c5f82e1c05ecf6eace7d82694152da4a0f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b72b7e4d3ba1b5cf9510f49407c47c5f82e1c05ecf6eace7d82694152da4a0f", kill_on_drop: false }`
[INFO] [stdout] 1b72b7e4d3ba1b5cf9510f49407c47c5f82e1c05ecf6eace7d82694152da4a0f
